package Z.dailyExercise.May;

import com.sun.org.apache.regexp.internal.RE;

public class _342_4的幂 {
    /**
     * 先用递归处理
     * @param n
     * @return
     */
    public boolean isPowerOfFour(int n) {
        if (n==1){
            return true;
        }
        if(n%4!=0 || n==0){
            return false;
        }
        if (n==4){
            return true;
        }
        return isPowerOfFour(n/4);

    }
    /**
     * 根据二进制特点 4的幂次只能是偶数位为1 的 所以设计一个mask 与mask相与
     * mask=(10101010101010101010101010101010)
     * mask=(AAAAAAAA）16
     * ​
     * 为了提高效率 先判断是不是2 的幂次
     * 也就是只有一个1
     * 直接判断 n & n-1 是不是0
     * ​
     */
    public boolean isPowerOfFour1(int n) {
        return n>0 && (n & (n-1))==0 && (n & 0xaaaaaaaa)==0;

    }

}
